﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;


public class ManagerBase<Type> : MonoBehaviour where Type : MonoBehaviour
{
    private static Type sInstance;
    public static Type Get()
    {
        //インスタンスがないときは、コレクションから探してくる
        if (sInstance == null)
        {
            GameObject collection = GameObject.Find("ManagerCollection");
            if (collection == null)
            {
                collection = new GameObject("ManagerCollection");
                collection.AddComponent<ManagerCollection>();
            }
            //コレクションから、自身のインスタンスをもらう
            sInstance = collection.GetComponent<Type>();
            if (sInstance == null)
            {
                //コレクションに登録されていなければ、コレクションに登録する
                sInstance = collection.AddComponent<Type>();
            }
        }
        return sInstance;
    }
}
